#ifndef __TIMEOUT_H
#define __TIMEOUT_H

#ifdef __cplusplus
extern "C" {
#endif

#include "stdint.h"
#include "autocar_global.h"
#include "./lw_queue/lw_queue.h"

/********************类型定义********************/

typedef struct timeout_event_struct timeout_event_t;

struct timeout_event_struct
{
    lwq_t *queue;  /*状态机的消息队列句柄指针*/
    uint32_t timeout;  /*超时时间*/
	param_event_t event;  /*超时后需要发送的事件*/
    timeout_event_t *next;  /*指向下一个超时事件的指针*/
};

/********************全局函数声明********************/
void mount_timeout_event(lwq_t *queue, uint32_t timeout, int timeout_event);
void manage_timeout_event(void);

#ifdef __cplusplus
}
#endif

#endif
